package com.chatplus.application.domain.dto;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

@JsonIgnoreProperties(ignoreUnknown = true)
public class FunctionParametersDto implements Serializable {

    /**
     * type : object
     * required : ["11","444"]
     * properties : {"11":{"type":"string","description":"2222"},"333":{"type":"number","description":"222444"},"444":{"type":"string","description":"2222"}}
     */

    @JsonProperty("type")
    private String type;
    @JsonProperty("properties")
    private Map<String, FunctionFieldDetailBean> properties;
    @JsonProperty("required")
    private List<String> required;

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public Map<String, FunctionFieldDetailBean> getProperties() {
        return properties;
    }

    public void setProperties(Map<String, FunctionFieldDetailBean> properties) {
        this.properties = properties;
    }

    public List<String> getRequired() {
        return required;
    }

    public void setRequired(List<String> required) {
        this.required = required;
    }
    @JsonIgnoreProperties(ignoreUnknown = true)
    public static class FunctionFieldDetailBean {
        /**
         * type : string
         * description : 2222
         */

        @JsonProperty("type")
        private String type;
        @JsonProperty("description")
        private String description;

        public String getType() {
            return type;
        }

        public void setType(String type) {
            this.type = type;
        }

        public String getDescription() {
            return description;
        }

        public void setDescription(String description) {
            this.description = description;
        }
    }
}
